/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

SubUser Management
SubUser Management API

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef IamApiModel_h
#define IamApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKIam/IamModel.h>


@interface IamDescribeRolePoliciesRequest:JDCloudRequest

/// 页码
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 每页显示数目[10~100] 默认50条
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 关键字
@property (strong,nonatomic,nonnull)  NSString*  keyword;
/// 排序策略,0-按创建时间顺序排序  1-按创建时间倒序
@property (strong,nonatomic,nonnull)  NSNumber*  sort;
/// 角色名称
@property (strong,nonatomic,nonnull)  NSString*  roleName;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort
roleName:(NSString*)roleName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort
roleName:(NSString*)roleName;

@end

@interface IamDescribeRoleRequest:JDCloudRequest

/// 角色名称
@property (strong,nonatomic,nonnull)  NSString*  roleName;
-(id) initWithRegion:(NSString *)regionId
roleName:(NSString*)roleName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
roleName:(NSString*)roleName;

@end

@interface IamAttachRolePolicyRequest:JDCloudRequest

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
/// 角色名称
@property (strong,nonatomic,nonnull)  NSString*  roleName;
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
roleName:(NSString*)roleName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
roleName:(NSString*)roleName;

@end

@interface IamDeleteRoleRequest:JDCloudRequest

/// 角色名称
@property (strong,nonatomic,nonnull)  NSString*  roleName;
-(id) initWithRegion:(NSString *)regionId
roleName:(NSString*)roleName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
roleName:(NSString*)roleName;

@end

@interface IamDetachRolePolicyRequest:JDCloudRequest

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
/// 角色名称
@property (strong,nonatomic,nonnull)  NSString*  roleName;
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
roleName:(NSString*)roleName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
roleName:(NSString*)roleName;

@end

@interface IamDescribeRolesRequest:JDCloudRequest

/// 页码，默认1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认50，取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 角色名称关键词
@property (strong,nonatomic,nonnull)  NSString*  roleName;
/// 角色类型，默认查找所有类型，2-服务相关角色，3-服务角色，4-用户角色
@property (strong,nonatomic,nonnull)  NSNumber*  type;
/// 排序策略,0-按创建时间顺序排序,1-按创建时间倒序排序
@property (strong,nonatomic,nonnull)  NSNumber*  sort;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
roleName:(NSString*)roleName
type:(NSNumber*)type
sort:(NSNumber*)sort;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
roleName:(NSString*)roleName
type:(NSNumber*)type
sort:(NSNumber*)sort;

@end

@interface IamDeletePolicyRequest:JDCloudRequest

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName;

@end

@interface IamDescribePolicyRequest:JDCloudRequest

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName;

@end

@interface IamDescribePoliciesRequest:JDCloudRequest

/// 页码，默认1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认50，取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 关键字
@property (strong,nonatomic,nonnull)  NSString*  keyword;
/// 策略类型：0-全部（默认），1-系统策略，2-自定义策略
@property (strong,nonatomic,nonnull)  NSNumber*  queryType;
/// 排序规则：0-创建时间顺序排序，1-创建时间倒序排序
@property (strong,nonatomic,nonnull)  NSNumber*  sort;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
queryType:(NSNumber*)queryType
sort:(NSNumber*)sort;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
queryType:(NSNumber*)queryType
sort:(NSNumber*)sort;

@end

@interface IamDescribePermissionDetailRequest:JDCloudRequest

/// 权限id
@property (strong,nonatomic,nonnull)  NSNumber*  permissionId;
-(id) initWithRegion:(NSString *)regionId
permissionId:(NSNumber*)permissionId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
permissionId:(NSNumber*)permissionId;

@end

@interface IamDescribePermissionsRequest:JDCloudRequest

/// 页码
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 每页显示数目
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 关键字
@property (strong,nonatomic,nonnull)  NSString*  keyword;
/// 权限类型,0-全部，1-系统权限，2-自定义权限
@property (strong,nonatomic,nonnull)  NSNumber*  queryType;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
queryType:(NSNumber*)queryType;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
queryType:(NSNumber*)queryType;

@end

@interface IamDescribeSubUserPermissionsRequest:JDCloudRequest

/// 页码
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 每页显示数目
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 子用户用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
subUser:(NSString*)subUser;

@end

@interface IamRemovePermissionOfSubUserRequest:JDCloudRequest

/// 权限id
@property (strong,nonatomic,nonnull)  NSNumber*  permissionId;
/// 子用户用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
permissionId:(NSNumber*)permissionId
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
permissionId:(NSNumber*)permissionId
subUser:(NSString*)subUser;

@end

@interface IamDisableSubUserAccessKeyRequest:JDCloudRequest

/// 子用户名称
@property (strong,nonatomic,nonnull)  NSString*  subUser;
/// accessKey
@property (strong,nonatomic,nonnull)  NSString*  accessKey;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey;

@end

@interface IamDeleteSubUserAccessKeyRequest:JDCloudRequest

/// 子用户名称
@property (strong,nonatomic,nonnull)  NSString*  subUser;
/// accessKey
@property (strong,nonatomic,nonnull)  NSString*  accessKey;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey;

@end

@interface IamEnableSubUserAccessKeyRequest:JDCloudRequest

/// 子用户名称
@property (strong,nonatomic,nonnull)  NSString*  subUser;
/// accessKey
@property (strong,nonatomic,nonnull)  NSString*  accessKey;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey;

@end

@interface IamEnabledUserAccessKeyRequest:JDCloudRequest

/// accessKey
@property (strong,nonatomic,nonnull)  NSString*  accessKey;
-(id) initWithRegion:(NSString *)regionId
accessKey:(NSString*)accessKey;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
accessKey:(NSString*)accessKey;

@end

@interface IamDisabledUserAccessKeyRequest:JDCloudRequest

/// accessKey
@property (strong,nonatomic,nonnull)  NSString*  accessKey;
-(id) initWithRegion:(NSString *)regionId
accessKey:(NSString*)accessKey;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
accessKey:(NSString*)accessKey;

@end

@interface IamDeleteUserAccessKeyRequest:JDCloudRequest

/// accessKey
@property (strong,nonatomic,nonnull)  NSString*  accessKey;
-(id) initWithRegion:(NSString *)regionId
accessKey:(NSString*)accessKey;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
accessKey:(NSString*)accessKey;

@end

@interface IamRemoveSubUserFromGroupRequest:JDCloudRequest

/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
groupName:(NSString*)groupName;

@end

@interface IamAddSubUserToGroupRequest:JDCloudRequest

/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
groupName:(NSString*)groupName;

@end

@interface IamDescribeGroupRequest:JDCloudRequest

/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
groupName:(NSString*)groupName;

@end

@interface IamAttachGroupPolicyRequest:JDCloudRequest

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
groupName:(NSString*)groupName;

@end

@interface IamDescribeGroupsRequest:JDCloudRequest

/// 页码，默认1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认50，取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 关键字
@property (strong,nonatomic,nonnull)  NSString*  keyword;
/// 排序规则：0-创建时间顺序排序，1-创建时间倒序排序
@property (strong,nonatomic,nonnull)  NSNumber*  sort;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort;

@end

@interface IamDescribeAttachedGroupPoliciesRequest:JDCloudRequest

/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
groupName:(NSString*)groupName;

@end

@interface IamDescribeGroupSubUsersRequest:JDCloudRequest

/// 页码，默认1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认50，取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
groupName:(NSString*)groupName;

@end

@interface IamDetachGroupPolicyRequest:JDCloudRequest

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
groupName:(NSString*)groupName;

@end

@interface IamDeleteGroupRequest:JDCloudRequest

/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
groupName:(NSString*)groupName;

@end

@interface IamAttachSubUserPolicyRequest:JDCloudRequest

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
subUser:(NSString*)subUser;

@end

@interface IamDescribeSubUsersRequest:JDCloudRequest

/// 页码，默认1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认50，取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 关键字
@property (strong,nonatomic,nonnull)  NSString*  keyword;
/// 排序规则：0-创建时间顺序排序，1-创建时间倒序排序
@property (strong,nonatomic,nonnull)  NSNumber*  sort;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort;

@end

@interface IamDescribeSubUserRequest:JDCloudRequest

/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser;

@end

@interface IamDescribeAttachedSubUserPoliciesRequest:JDCloudRequest

/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser;

@end

@interface IamDetachSubUserPolicyRequest:JDCloudRequest

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
subUser:(NSString*)subUser;

@end

@interface IamDeleteSubUserRequest:JDCloudRequest

/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser;

@end

@interface IamDescribeSubUserGroupsRequest:JDCloudRequest

/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser;

@end

@interface IamCreateRoleResult : NSObject
/// 角色信息
 @property (strong,nonatomic,nonnull)  RoleInfo*  roleInfo;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithRoleInfo:(RoleInfo*) roleInfo;
@end

@interface IamAttachRolePolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamAttachRolePolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamAttachRolePolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamAttachRolePolicyResult*) result;
@end

@interface IamDetachRolePolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDetachRolePolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDetachRolePolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDetachRolePolicyResult*) result;
@end

@interface IamUpdateAssumeRolePolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamUpdateAssumeRolePolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamUpdateAssumeRolePolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamUpdateAssumeRolePolicyResult*) result;
@end

@interface IamCreateRoleResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamCreateRoleResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamCreateRoleResult*) result;
@end

@interface IamDescribeRolePoliciesResult : NSObject
/// 总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// Policies
 @property (strong,nonatomic,nonnull)  NSArray<RolePolicy*>*  policies;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    policies:(NSArray<RolePolicy*>*)policies;
@end

@interface IamDescribeRolePoliciesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeRolePoliciesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeRolePoliciesResult*) result;
@end

@interface IamDescribeRoleResult : NSObject
/// 角色信息
 @property (strong,nonatomic,nonnull)  RoleInfo*  roleInfo;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithRoleInfo:(RoleInfo*) roleInfo;
@end

@interface IamDescribeRoleResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeRoleResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeRoleResult*) result;
@end

@interface IamCreateRoleRequest:JDCloudRequest

/// 角色信息
@property (strong,nonatomic,nonnull)  CreateRoleInfo*  createRoleInfo;
-(id) initWithRegion:(NSString *)regionId
createRoleInfo:(CreateRoleInfo*)createRoleInfo;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createRoleInfo:(CreateRoleInfo*)createRoleInfo;

@end

@interface IamDeleteRoleResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDeleteRoleResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDeleteRoleResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDeleteRoleResult*) result;
@end

@interface IamDescribeRolesResult : NSObject
/// 总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// Roles
 @property (strong,nonatomic,nonnull)  NSArray<ListRoleInfo*>*  roles;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    roles:(NSArray<ListRoleInfo*>*)roles;
@end

@interface IamDescribeRolesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeRolesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeRolesResult*) result;
@end

@interface IamUpdateAssumeRolePolicyRequest:JDCloudRequest

/// 角色权限信息
@property (strong,nonatomic,nonnull)  UpdateAssumeRolePolicyInfo*  updateAssumeRolePolicyInfo;
/// 角色名称
@property (strong,nonatomic,nonnull)  NSString*  roleName;
-(id) initWithRegion:(NSString *)regionId
updateAssumeRolePolicyInfo:(UpdateAssumeRolePolicyInfo*)updateAssumeRolePolicyInfo
roleName:(NSString*)roleName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updateAssumeRolePolicyInfo:(UpdateAssumeRolePolicyInfo*)updateAssumeRolePolicyInfo
roleName:(NSString*)roleName;

@end

@interface IamCreatePolicyRequest:JDCloudRequest

/// 策略信息
@property (strong,nonatomic,nonnull)  CreatePolicyInfo*  createPolicyInfo;
-(id) initWithRegion:(NSString *)regionId
createPolicyInfo:(CreatePolicyInfo*)createPolicyInfo;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createPolicyInfo:(CreatePolicyInfo*)createPolicyInfo;

@end

@interface IamDeletePolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamCreatePolicyResult : NSObject
/// 策略信息
 @property (strong,nonatomic,nonnull)  Policy*  policy;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPolicy:(Policy*) policy;
@end

@interface IamDescribePolicyResult : NSObject
/// 策略信息
 @property (strong,nonatomic,nonnull)  PolicyDetail*  policy;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPolicy:(PolicyDetail*) policy;
@end

@interface IamDescribePolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribePolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribePolicyResult*) result;
@end

@interface IamDeletePolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDeletePolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDeletePolicyResult*) result;
@end

@interface IamDescribePoliciesResult : NSObject
/// 总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// Policies
 @property (strong,nonatomic,nonnull)  NSArray<Policy*>*  policies;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    policies:(NSArray<Policy*>*)policies;
@end

@interface IamDescribePoliciesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribePoliciesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribePoliciesResult*) result;
@end

@interface IamUpdatePolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamUpdatePolicyDescriptionRequest:JDCloudRequest

/// 策略描述信息
@property (strong,nonatomic,nonnull)  UpdatePolicyDescriptionInfo*  updatePolicyDescriptionInfo;
/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
-(id) initWithRegion:(NSString *)regionId
updatePolicyDescriptionInfo:(UpdatePolicyDescriptionInfo*)updatePolicyDescriptionInfo
policyName:(NSString*)policyName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updatePolicyDescriptionInfo:(UpdatePolicyDescriptionInfo*)updatePolicyDescriptionInfo
policyName:(NSString*)policyName;

@end

@interface IamUpdatePolicyRequest:JDCloudRequest

/// 策略文档信息
@property (strong,nonatomic,nonnull)  UpdatePolicyInfo*  updatePolicyInfo;
/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;
-(id) initWithRegion:(NSString *)regionId
updatePolicyInfo:(UpdatePolicyInfo*)updatePolicyInfo
policyName:(NSString*)policyName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updatePolicyInfo:(UpdatePolicyInfo*)updatePolicyInfo
policyName:(NSString*)policyName;

@end

@interface IamUpdatePolicyDescriptionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamUpdatePolicyDescriptionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamUpdatePolicyDescriptionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamUpdatePolicyDescriptionResult*) result;
@end

@interface IamUpdatePolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamUpdatePolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamUpdatePolicyResult*) result;
@end

@interface IamCreatePolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamCreatePolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamCreatePolicyResult*) result;
@end

@interface IamRemovePermissionOfSubUserResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamRemovePermissionOfSubUserResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamRemovePermissionOfSubUserResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamRemovePermissionOfSubUserResult*) result;
@end

@interface IamDescribePermissionDetailResult : NSObject
/// 权限信息
 @property (strong,nonatomic,nonnull)  Permission*  permission;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPermission:(Permission*) permission;
@end

@interface IamDescribePermissionDetailResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribePermissionDetailResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribePermissionDetailResult*) result;
@end

@interface IamUpdatePermissionRequest:JDCloudRequest

/// 权限信息
@property (strong,nonatomic,nonnull)  UpdatePermissionInfo*  updatePermissionInfo;
/// 权限id
@property (strong,nonatomic,nonnull)  NSNumber*  permissionId;
-(id) initWithRegion:(NSString *)regionId
updatePermissionInfo:(UpdatePermissionInfo*)updatePermissionInfo
permissionId:(NSNumber*)permissionId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updatePermissionInfo:(UpdatePermissionInfo*)updatePermissionInfo
permissionId:(NSNumber*)permissionId;

@end

@interface IamUpdatePermissionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamUpdatePermissionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamUpdatePermissionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamUpdatePermissionResult*) result;
@end

@interface IamCreatePermissionResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamCreatePermissionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamCreatePermissionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamCreatePermissionResult*) result;
@end

@interface IamDescribePermissionsResult : NSObject
/// 总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// Permissions
 @property (strong,nonatomic,nonnull)  NSArray<Permission*>*  permissions;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    permissions:(NSArray<Permission*>*)permissions;
@end

@interface IamDescribeSubUserPermissionsResult : NSObject
/// 总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// Permissions
 @property (strong,nonatomic,nonnull)  NSArray<Permission*>*  permissions;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    permissions:(NSArray<Permission*>*)permissions;
@end

@interface IamDescribeSubUserPermissionsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeSubUserPermissionsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeSubUserPermissionsResult*) result;
@end

@interface IamAddPermissionsToSubUserRequest:JDCloudRequest

/// 权限信息
@property (strong,nonatomic,nonnull)  AddPermissionsInfo*  addPermissionsInfo;
/// 子用户用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
addPermissionsInfo:(AddPermissionsInfo*)addPermissionsInfo
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
addPermissionsInfo:(AddPermissionsInfo*)addPermissionsInfo
subUser:(NSString*)subUser;

@end

@interface IamAddPermissionsToSubUserResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamAddPermissionsToSubUserResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamAddPermissionsToSubUserResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamAddPermissionsToSubUserResult*) result;
@end

@interface IamCreatePermissionRequest:JDCloudRequest

/// 权限信息
@property (strong,nonatomic,nonnull)  CreatePermissionInfo*  createPermissionInfo;
-(id) initWithRegion:(NSString *)regionId
createPermissionInfo:(CreatePermissionInfo*)createPermissionInfo;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createPermissionInfo:(CreatePermissionInfo*)createPermissionInfo;

@end

@interface IamDescribePermissionsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribePermissionsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribePermissionsResult*) result;
@end

@interface IamDisableSubUserAccessKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDisableSubUserAccessKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDisableSubUserAccessKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDisableSubUserAccessKeyResult*) result;
@end

@interface IamEnableSubUserAccessKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamEnableSubUserAccessKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamEnableSubUserAccessKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamEnableSubUserAccessKeyResult*) result;
@end

@interface IamDeleteSubUserAccessKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDeleteSubUserAccessKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDeleteSubUserAccessKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDeleteSubUserAccessKeyResult*) result;
@end

@interface IamDescribeUserAccessKeysRequest:JDCloudRequest

@end

@interface IamDisabledUserAccessKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamCreateUserAccessKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamCreateUserAccessKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamCreateUserAccessKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamCreateUserAccessKeyResult*) result;
@end

@interface IamEnabledUserAccessKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamCreateUserAccessKeyRequest:JDCloudRequest

@end

@interface IamDisabledUserAccessKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDisabledUserAccessKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDisabledUserAccessKeyResult*) result;
@end

@interface IamDescribeUserAccessKeysResult : NSObject
/// UserAccessKeys
 @property (strong,nonatomic,nonnull)  NSArray<UserAccessKey*>*  userAccessKeys;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithUserAccessKeys:(NSArray<UserAccessKey*>*) userAccessKeys;
@end

@interface IamDeleteUserAccessKeyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDeleteUserAccessKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDeleteUserAccessKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDeleteUserAccessKeyResult*) result;
@end

@interface IamDescribeUserAccessKeysResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeUserAccessKeysResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeUserAccessKeysResult*) result;
@end

@interface IamEnabledUserAccessKeyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamEnabledUserAccessKeyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamEnabledUserAccessKeyResult*) result;
@end

@interface IamDescribeAttachedGroupPoliciesResult : NSObject
/// 总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// Policies
 @property (strong,nonatomic,nonnull)  NSArray<Policy*>*  policies;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    policies:(NSArray<Policy*>*)policies;
@end

@interface IamDescribeAttachedGroupPoliciesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeAttachedGroupPoliciesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeAttachedGroupPoliciesResult*) result;
@end

@interface IamDetachGroupPolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDetachGroupPolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDetachGroupPolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDetachGroupPolicyResult*) result;
@end

@interface IamDescribeGroupResult : NSObject
/// 用户组信息
 @property (strong,nonatomic,nonnull)  GroupDetail*  group;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithGroup:(GroupDetail*) group;
@end

@interface IamUpdateGroupResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDescribeGroupSubUsersResult : NSObject
/// 用户总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// SubUsers
 @property (strong,nonatomic,nonnull)  NSArray<SubUserInfo*>*  subUsers;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    subUsers:(NSArray<SubUserInfo*>*)subUsers;
@end

@interface IamDescribeGroupsResult : NSObject
/// 总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// Groups
 @property (strong,nonatomic,nonnull)  NSArray<Group*>*  groups;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    groups:(NSArray<Group*>*)groups;
@end

@interface IamDescribeGroupsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeGroupsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeGroupsResult*) result;
@end

@interface IamCreateGroupResult : NSObject
/// 用户组信息
 @property (strong,nonatomic,nonnull)  CreateGroupRes*  group;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithGroup:(CreateGroupRes*) group;
@end

@interface IamCreateGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamCreateGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamCreateGroupResult*) result;
@end

@interface IamAddSubUserToGroupResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamAddSubUserToGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamAddSubUserToGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamAddSubUserToGroupResult*) result;
@end

@interface IamUpdateGroupRequest:JDCloudRequest

/// UpdateGroupInfo
@property (strong,nonatomic,nonnull)  UpdateGroupInfo*  updateGroupInfo;
/// 用户组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;
-(id) initWithRegion:(NSString *)regionId
updateGroupInfo:(UpdateGroupInfo*)updateGroupInfo
groupName:(NSString*)groupName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updateGroupInfo:(UpdateGroupInfo*)updateGroupInfo
groupName:(NSString*)groupName;

@end

@interface IamDescribeGroupSubUsersResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeGroupSubUsersResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeGroupSubUsersResult*) result;
@end

@interface IamAttachGroupPolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamAttachGroupPolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamAttachGroupPolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamAttachGroupPolicyResult*) result;
@end

@interface IamUpdateGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamUpdateGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamUpdateGroupResult*) result;
@end

@interface IamDeleteGroupResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamRemoveSubUserFromGroupResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamRemoveSubUserFromGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamRemoveSubUserFromGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamRemoveSubUserFromGroupResult*) result;
@end

@interface IamCreateGroupRequest:JDCloudRequest

/// CreateGroupInfo
@property (strong,nonatomic,nonnull)  CreateGroupInfo*  createGroupInfo;
-(id) initWithRegion:(NSString *)regionId
createGroupInfo:(CreateGroupInfo*)createGroupInfo;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createGroupInfo:(CreateGroupInfo*)createGroupInfo;

@end

@interface IamDeleteGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDeleteGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDeleteGroupResult*) result;
@end

@interface IamDescribeGroupResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeGroupResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeGroupResult*) result;
@end

@interface IamCreateSubUserResult : NSObject
/// SubUser
 @property (strong,nonatomic,nonnull)  CreateSubUserRes*  subUser;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSubUser:(CreateSubUserRes*) subUser;
@end

@interface IamDescribeAttachedSubUserPoliciesResult : NSObject
/// 总数
 @property (strong,nonatomic,nonnull)  NSNumber*  total;
/// Policies
 @property (strong,nonatomic,nonnull)  NSArray<Policy*>*  policies;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotal:(NSNumber*) total

    policies:(NSArray<Policy*>*)policies;
@end

@interface IamDescribeAttachedSubUserPoliciesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeAttachedSubUserPoliciesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeAttachedSubUserPoliciesResult*) result;
@end

@interface IamDeleteSubUserResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDeleteSubUserResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDeleteSubUserResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDeleteSubUserResult*) result;
@end

@interface IamDescribeSubUsersResult : NSObject
/// SubUsers
 @property (strong,nonatomic,nonnull)  NSArray<SubUser*>*  subUsers;
/// Total
 @property (strong,nonatomic,nonnull)  NSNumber*  total;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSubUsers:(NSArray<SubUser*>*) subUsers

    total:(NSNumber*)total;
@end

@interface IamDescribeSubUsersResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeSubUsersResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeSubUsersResult*) result;
@end

@interface IamDescribeSubUserGroupsResult : NSObject
/// Groups
 @property (strong,nonatomic,nonnull)  NSArray<GroupInfo*>*  groups;
/// Total
 @property (strong,nonatomic,nonnull)  NSNumber*  total;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithGroups:(NSArray<GroupInfo*>*) groups

    total:(NSNumber*)total;
@end

@interface IamDescribeSubUserGroupsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeSubUserGroupsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeSubUserGroupsResult*) result;
@end

@interface IamCreateSubUserRequest:JDCloudRequest

/// 子用户信息
@property (strong,nonatomic,nonnull)  CreateSubUserInfo*  createSubUserInfo;
-(id) initWithRegion:(NSString *)regionId
createSubUserInfo:(CreateSubUserInfo*)createSubUserInfo;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createSubUserInfo:(CreateSubUserInfo*)createSubUserInfo;

@end

@interface IamUpdateSubUserResult : NSObject
/// SubUser
 @property (strong,nonatomic,nonnull)  CreateSubUserRes*  subUser;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSubUser:(CreateSubUserRes*) subUser;
@end

@interface IamAttachSubUserPolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamAttachSubUserPolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamAttachSubUserPolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamAttachSubUserPolicyResult*) result;
@end

@interface IamUpdateSubUserRequest:JDCloudRequest

/// 子用户信息
@property (strong,nonatomic,nonnull)  UpdateSubUserInfo*  updateSubUserInfo;
/// 子用户名
@property (strong,nonatomic,nonnull)  NSString*  subUser;
-(id) initWithRegion:(NSString *)regionId
updateSubUserInfo:(UpdateSubUserInfo*)updateSubUserInfo
subUser:(NSString*)subUser;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updateSubUserInfo:(UpdateSubUserInfo*)updateSubUserInfo
subUser:(NSString*)subUser;

@end

@interface IamDetachSubUserPolicyResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface IamDetachSubUserPolicyResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDetachSubUserPolicyResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDetachSubUserPolicyResult*) result;
@end

@interface IamDescribeSubUserResult : NSObject
/// SubUser
 @property (strong,nonatomic,nonnull)  SubUser*  subUser;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSubUser:(SubUser*) subUser;
@end

@interface IamDescribeSubUserResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamDescribeSubUserResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamDescribeSubUserResult*) result;
@end

@interface IamUpdateSubUserResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamUpdateSubUserResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamUpdateSubUserResult*) result;
@end

@interface IamCreateSubUserResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property IamCreateSubUserResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(IamCreateSubUserResult*) result;
@end

#endif /* IamApiModel_h */
